package zombie_Caminando;

import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import java.util.Iterator;

public class Juego  implements Runnable {

	protected ArrayList<Zombie> Zombies;
	protected Thread HiloJuego;
	protected Ventana ventana;
	protected boolean juegoActivo;
	protected TimerTask timerTask;

	public Juego(Ventana vent) {             
		Zombies = new ArrayList<Zombie>();
		ventana =vent;
		inicializarEntidades();
		(new Thread(this)).start();

	}
	private void inicializarEntidades() {

		timerTask=new TimerTask() {
			
			@Override
			public void run() {
				
				crearZombi(800, 200, ventana.miJuego);				
			}
		};
		Timer timer=new Timer();
		timer.scheduleAtFixedRate(timerTask, 100, 4000);
		
		juegoActivo=true;
	}
	
	@SuppressWarnings("deprecation")
	public void run() {
		
		while (juegoActivo) {
			
			//dibujo los zombies
			Zombie actual;
			for (int i=0;i<Zombies.size();i++) {
				actual=Zombies.get(i);
				actual.dibujar(ventana.getGraphics());
			}
			
			for (int i=0;i<Zombies.size();i++) {
				actual=Zombies.get(i);
				if (actual.getX()<=-25) {
					juegoActivo=false;
					ventana.perdio();
				}
			}			
		
			ventana.repaint();
			try {
				Thread.sleep(10);
			} catch (InterruptedException e) {}
		}
	}

	public Ventana getVentana(){
		return ventana;
	}
	
	private void crearZombi(int posX, int posY, Juego miJuego) {
		
		Zombie zombie=new Zombi(posX, posY, miJuego);
		Zombies.add(zombie);
		ventana.getContentPane().add(zombie.getRepGrafica());
		zombie.start();
	}
}

